/*
 * Alignment.h
 *
 *  Created on: Sep 10, 2012
 *      Author: pickrell
 */

#ifndef ALIGNMENT_H_
#define ALIGNMENT_H_
#include <string>
#include <vector>
#include <map>
#include <cstdlib>
#include "gzstream.h"
#include <sys/stat.h>
#include <sstream>
using namespace std;

class Alignment{
public:
	Alignment();
	Alignment(string);
	void read_alignment(string);
	void compress();
	vector<vector<bool> > aln;
	vector<string> names;
	vector<int> colcounts;
	map<string, int> name2index;
	vector<bool> get_hap(string);
	vector<string> list_haps();
	int len, nchrom, nsite, nmono;
	void print(string);
	vector<vector<double> > get_dists();
	double get_dist(string, string);

};


#endif /* ALIGNMENT_H_ */
